package cn.com.guage.study;

/*
 * 冒泡排序代码实现
*/
/* 依次比较相邻的两个数，将比较小的数放在前面，比较大的数放在后面。 */
public class BubbleSort {

	
	// 冒泡排序
	private static void bubbleSort(int[] arr) {
		// 标识变量，表示是否进行过交换
		boolean flag = false;
		int temp = 0;
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - 1 - i; j++) {
				// 如果前面的数比后面的数大，则交换
				if (arr[j] > arr[j + 1]) {
					flag = true;
					temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
			// 在一趟排序中，一次交换都没有发生过
			if (!flag) {
				break;
			}
		}
	}

	public static void main(String[] args) {
		int[] numbers = new int[] { 12, 9, 23, 34, 13, 45, 23, 65, 34, 67, 13, 54, 25, 67, 87 };
		bubbleSort(numbers);
		System.out.println("从小到大排序后的结果是:");
		for (int i = 0; i < numbers.length; i++)
			System.out.print(numbers[i] + " ");
	}

}
